package com.vcoud.mundialbrasil2014.adapter;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.vcoud.mbrasil2014.R;
import com.vcoud.mundialbrasil2014.CargardorImagen;

public class HomeAdapter extends BaseAdapter {

	private Activity context;
	private ArrayList<HashMap<String, String>> data;
	private static LayoutInflater inflater = null;
	public CargardorImagen cargarImagen;

	static final String KEY_PARTIDO_IDPARTIDO = "IDPartido";
	static final String KEY_PARTIDO_FK_EQUIPOLOCAL_NOMBRE = "FK_EquipoLocal_Nombre";
	static final String KEY_PARTIDO_FK_EQUIPOLOCAL_BANDERA = "FK_EquipoLocal_Bandera";
	static final String KEY_PARTIDO_FK_EQUIPOVISITANTE_NOMBRE = "FK_EquipoVisitante_Nombre";
	static final String KEY_PARTIDO_FK_EQUIPOVISITANTE_BANDERA = "FK_EquipoVisitante_Bandera";
	static final String KEY_PARTIDO_FK_SEDE = "FK_Sede";
	static final String KEY_PARTIDO_FECHA = "Fecha";
	static final String KEY_PARTIDO_NOMBREARBITRO = "NombreArbitro";
	static final String KEY_PARTIDO_GOLLOCAL = "GolLocal";
	static final String KEY_PARTIDO_GOLVISITANTE = "GolVisitante";
	static final String KEY_PARTIDO_GOLLOCALTIEMPOEXTRA = "GolLocalTiempoExtra";
	static final String KEY_PARTIDO_GOLVISITANTETIEMPOEXTRA = "GolVisitanteTiempoExtra";
	static final String KEY_PARTIDO_GOLLOCALPENAL = "GolLocalPenal";
	static final String KEY_PARTIDO_GOLVISITANTEPENAL = "GolVisitantePenal";
	static final String KEY_PARTIDO_FK_ETAPAMUNDIAL = "FK_EtapaMundial";

	public HomeAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
		context = a;
		data = d;
		inflater = (LayoutInflater) context
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		cargarImagen = new CargardorImagen(context.getApplicationContext());
	}

	@Override
	public int getCount() {
		return data.size();
	}

	public void actualizar(ArrayList<HashMap<String, String>> data) {
		this.data.clear();
		this.data = data;
		this.notifyDataSetChanged();
	}

	@Override
	public HashMap<String, String> getItem(int position) {
		// Se otorga la posicion de un equipo
		HashMap<String, String> equipo = new HashMap<String, String>();
		equipo = data.get(position);
		return equipo;
	}

	@Override
	public long getItemId(int position) {
		// Funcion que permite pasar la id del equipo
		HashMap<String, String> equipo = new HashMap<String, String>();
		equipo = data.get(position);
		long id = Long.parseLong(equipo.get(KEY_PARTIDO_IDPARTIDO));
		return id;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		if (convertView == null)
			convertView = inflater.inflate(R.layout.list_home_partidos, null);
		HashMap<String, String> detalle = new HashMap<String, String>();
		detalle = data.get(position);

		// Instancia de los textviews
		TextView tvHora = (TextView) convertView.findViewById(R.id.hora);
		TextView tvEquipoLocal = (TextView) convertView
				.findViewById(R.id.equipo_local);
		TextView tvEquipoVisitante = (TextView) convertView
				.findViewById(R.id.equipo_visitante);
		ImageView ivEquipoLocal = (ImageView) convertView
				.findViewById(R.id.bandera_imagen_local);
		ImageView ivEquipoVisitante = (ImageView) convertView
				.findViewById(R.id.bandera_imagen_visitante);

		// Asignacion del texto a los textviews
		tvHora.setText(detalle.get(KEY_PARTIDO_FECHA));
		tvEquipoLocal.setText(detalle.get(KEY_PARTIDO_FK_EQUIPOLOCAL_NOMBRE));
		tvEquipoVisitante.setText(detalle
				.get(KEY_PARTIDO_FK_EQUIPOVISITANTE_NOMBRE));
		cargarImagen.mostrarImagen(
				detalle.get(KEY_PARTIDO_FK_EQUIPOLOCAL_BANDERA), ivEquipoLocal);
		cargarImagen.mostrarImagen(
				detalle.get(KEY_PARTIDO_FK_EQUIPOVISITANTE_BANDERA),
				ivEquipoVisitante);

		return convertView;
	}
}
